本发明公开了一种多Web服务发布的方法及Web服务装置,应用于开源的服务框架Apache CXF和微内核集成框架上的Web服务装置,所述Web服务装置包括:Web服务模块和部署器模块,该方法包括:所述部署器模块获取包括注解标识的普通类,所述部署器模块中的配置文件配置所述普通类发布成Web服务的方式;所述部署器模块将所述配置后的普通类打包生成Web服务可部署文件;所述部署器模块解析所述Web服务可部署文件以获取Web服务配置文件声明,根据所述Web服务配置文件声明实现多个Web服务的发布。本发明公开的多Web服务发布的方法,通过对各模块的运行,以热部署的方式部署至框架中,实现了多Web服务发布。
1.一种多Web服务发布的方法,其特征在于,应用于开源的服务框架Apachexa0CXF和微内核集成框架上的Web服务装置,所述Web服务装置包括:Web服务模块和部署器模块,该方法包括:所述部署器模块获取包括注解标识的普通类,所述部署器模块中的配置文件配置所述普通类发布成Web服务的方式;所述部署器模块将所述配置后的普通类打包生成Web服务可部署文件;所述部署器模块解析所述Web服务可部署文件以获取Web服务配置文件声明,根据所述Web服务配置文件声明实现多个Web服务的发布;还包括:所述部署器模块获取Web服务的Web服务描述语言WSDL文档,生成接口;所述部署器模块获取客户端类,调用所述接口方法实现功能,所述配置文件配置所述客户端类,并用多个Web服务的地址和WSDL资源位置来引用Web服务,生成Web服务代理;所述部署器模块将所述生成Web服务代理打包生成Web服务代理可部署文件;所述部署器模块解析所述Web服务代理可部署文件以获取Web服务代理配置文件声明,根据所述Web服务代理的配置文件声明生成Web服务代理注入到所述客户端类对象的对应字段中。
2.根据权利要求1所述的多Web服务发布的方法,其特征在于,还包括:根据所述Web服务配置文件声明或/和Web服务代理配置文件声明将所述发布的Web服务或/和Web服务代理作为实体放置于所述Web服务模块或/和Web服务引用模块。
3.根据权利要求1所述的多Web服务发布的方法,其特征在于,所述配置普通类发布成Web服务的方式为:是否支持安全、是否支持日志记录消息或是否启用附件优化。
4.根据权利要求3所述的多Web服务发布的方法,其特征在于,所述配置普通类发布成Web服务的方式为支持安全,则加入密钥库或/和证书。
5.一种Web服务装置,其特征在于,应用于开源的服务框架Apachexa0CXF和微内核集成框架,包括:部署器模块,用于获取包括注解标识的普通类,对所述普通类发布成Web服务的方式进行配置,并将所述配置后的普通类打包生成Web服务可部署文件,然后对所述Web服务可部署文件解析获取配置文件声明,根据所述配置文件声明实现多个Web服务的发布;截获器列表模块,用于存储截获器的集合,并在调用业务服务之前进行消息处理;协议处理器模块,用于存储协议处理器的集合,并作为Web服务调用的入口,判别远程请求的类型,对所述远程请求进行协议层的处理;Web服务模块,用于存储已经发布的Web服务的集合;Web服务引用模块,用于存储Web服务引用的集合;管理接口模块,用于管理所述截获器列表模块、所述协议处理器模块、所述Web服务模块和所述Web服务引用模块;所述部署器模块还用于:获取Web服务的Web服务描述语言WSDL文档,生成接口;获取客户端类,调用所述接口方法实现功能,所述配置文件配置所述客户端类,并用多个Web服务的地址和WSDL资源位置来引用Web服务,生成Web服务代理;将所述生成Web服务代理打包生成Web服务代理可部署文件;解析所述Web服务代理可部署文件以获取Web服务代理配置文件声明,根据所述Web服务代理的配置文件声明生成Web服务代理注入到所述客户端类对象的对应字段中。
6.根据权利要求5所述的Web服务装置,其特征在于,所述部署器模块对所述配置普通类发布成Web服务的方式为:是否支持安全、是否支持日志记录消息或是否启用附件优化。
7.根据权利要求5所述的Web服务装置,其特征在于,所述配置普通类发布成Web服务的方式为支持安全,则加入密钥库或/和证书。
8.根据权利要求5所述的Web服务装置,其特征在于,所述部署器模块、截获器列表模块、协议处理器模块、Web服务模块、Web服务引用模块、管理接口模块以bundle的形式通过热部署的方式部署至Apachexa0CXF和微内核集成框架。
技术领域本发明涉及计算机Web服务应用领域,更具体的说,是涉及一种多Web服务发布的方法及Web服务装置。
背景技术Webxa0Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。Webxa0Service所使用的是Internet(因特网)上统一、开放的标准,如HTTP(HyperTextxa0Transferxa0Protocol,超文本传输协议)、XML(Extensiblexa0Markupxa0Language,可扩展标记语言)、SOAP(Simplexa0Objectxa0Accessxa0Protocol,简单对象访问协议)、WSDL(Webxa0Servicesxa0Des
criptionxa0Language,Webxa0Service描述语言)等,所以Web服务可以在任何支持这些标准的环境(例如:Windows,Linux)中使用。Web服务框架是方便开发和部署Web服务的架构模式,现有技术中最为普遍的两种Web服务框架是CXF和Axis2,这些服务框架直接基于Java技术,提供了分散和分布式的环境对应用程序进行设计、开发、装配以及部署,现有技术中进行Web服务的发布是对一个对象向外发布成服务,无法从组件层面上实现Web服务的发布,实现多Web服务的发布。
发明内容有鉴于此,本发明提供了一种多Web服务发布的方法及Web服务装置,以克服现有技术中由于只能对一个对象向外发布成服务,无法从组件层面上实现Web服务的发布,实现多Web服务的发布的问题。为实现上述目的,本发明提供如下技术方案:一种多Web服务发布的方法,应用于开源的服务框架Apachexa0CXF和微内核集成框架上的Web服务装置,所述Web服务装置包括:Web服务模块和部署器模块,该方法包括:所述部署器模块获取包括注解标识的普通类,所述部署器模块中的配置文件配置所述普通类发布成Web服务的方式;所述部署器模块将所述配置后的普通类打包生成Web服务可部署文件;所述部署器模块解析所述Web服务可部署文件以获取Web服务配置文件声明,根据所述Web服务配置文件声明实现多个Web服务的发布。其中,该方法还包括:所述部署器模块获取Web服务的Web服务描述语言WSDL文档,生成接口;所述部署器模块获取客户端类,调用所述接口方法实现功能,所述配置文件配置所述客户端类,并用多个Web服务的地址和WSDL资源位置来引用Web服务,生成Web服务代理;所述部署器模块将所述生成Web服务代理打包生成Web服务代理可部署文件;所述部署器模块解析所述Web服务代理可部署文件以获取Web服务代理配置文件声明,根据所述Web服务代理的配置文件声明生成Web服务代理注入到所述客户端类对象的对应字段中。其中,根据所述Web服务配置文件声明或/和Web服务代理配置文件声明将所述发布的Web服务或/和Web服务代理作为实体放置于所述Web服务模块或/和Web服务引用模块。其中,所述配置普通类发布成Web服务的方式为:是否支持安全、是否支持日志记录消息或是否启用附件优化。其中,所述配置普通类发布成Web服务的方式为支持安全,则加入密钥库或/和证书。一种Web服务装置,其特征在于,应用于开源的服务框架Apachexa0CXF和微内核集成框架,包括:部署器模块,用于获取包括注解标识的普通类,对所述普通类发布成Web服务的方式进行配置,并将所述配置后的普通类打包生成Web服务可部署文件,然后对所述Web服务可部署文件解析获取配置文件声明,根据所述配置文件声明实现多个Web服务的发布;截获器列表模块,用于存储截获器的集合,并在调用业务服务之前进行消息处理;协议处理器模块,用于存储协议处理器的集合,并作为Web服务调用的入口,判别远程请求的类型,对所述远程请求进行协议层的处理;Web服务模块,用于存储已经发布的Web服务的集合;Web服务引用模块,用于存储Web服务引用的集合;管理接口模块,用于管理所述截获器列表模块、所述协议处理器模块、所述Web服务模块和所述Web服务引用模块。其中,所述部署器模块还用于:获取Web服务的Web服务描述语言WSDL文档,生成接口;获取客户端类,调用所述接口方法实现功能,所述配置文件配置所述客户端类,并用多个Web服务的地址和WSDL资源位置来引用Web服务,生成Web服务代理;将所述生成Web服务代理打包生成Web服务代理可部署文件;解析所述Web服务代理可部署文件以获取Web服务代理配置文件声明,根据所述Web服务代理的配置文件声明生成Web服务代理注入到所述客户端类对象的对应字段中。其中,所述部署器模块对所述配置普通类发布成Web服务的方式为:是否支持安全、是否支持日志记录消息或是否启用附件优化。其中,所述部署器模块对配置普通类发布成Web服务的方式为支持安全,则加入密钥库或/和证书。其中,所述部署器模块、截获器列表模块、协议处理器模块、Web服务模块、Web服务引用模块、管理接口模块以bundle的形式通过热部署的方式部署至Apachexa0CXF和微内核集成框架。经由上述的技术方案可知,与现有技术相比,本发明公开了一种多Web服务发布的方法,首先部署器模块获取包括注解标示的普通类,配置文件配置普通类发布成Web服务的方式;部署器模块将部署后的普通类打包生成Web服务可部署文件;解析并获取Web服务配置文件声明,根据配置声明实现多个Web服务的发布。其次,该Web服务装置也提供了统一的管理接口,为Web服务装置提供了对各个模块进行统一的管理的功能。
附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例公开的一种多Web服务发布的方法的流程图;图2为本发明实施例公开的另一种多Web服务发布的方法的流程图;图3为本发明实施例公开的Web服务装置的整体结构图。
具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例是基于OSGi(Openxa0Servicexa0Gatewayxa0Initiative,公共服务平台)环境下中的开源的服务框架Apachexa0CXF和微内核集成框架上多Web服务发布的Web服务装置。OSGi内核框架是一个微核结构的容器,所有的模块都需要运行在容器范围内才能使用OSGi规范定义的内容,在OSGi中所有模块的部署都必须以bundle的方式来进行部署。OSGi规范所支持面向服务的组件模型,可以提供动态化和模块化的支持,为网络服务定义了一个标准的、面向组件的计算机环境,为执行程序提供标准的环境,确保实现动态部署。请参阅附图1,为本发明公开的一种多Web服务发布的方法实施例的流程图,可以应用于开源的服务框架Apachexa0CXF和微内核集成框架上的Web服务装置,所述Web服务装置可以包括:Web服务模块和部署器模块,该方法可以包括:步骤101:所述部署器模块获取包括注解标识的普通类,所述部署器模块中的配置文件配置所述普通类发布成Web服务的方式;其中,编写普通类(可以有多个),加上注解,该注解标识表明该对象可发布成Web服务和哪些方法可暴露。使用配置文件分别配置各个普通类发布成Web服务的方式:是否支持安全、是否支持日志记录消息和是否启用附件优化等。如果支持安全,需要加入一些特殊文件,如密钥库、证书等。步骤102:所述部署器模块将所述配置后的普通类打包生成Web服务可部署文件;步骤103:所述部署器模块解析所述Web服务可部署文件以获取Web服务配置文件声明,根据所述Web服务配置文件声明实现多个Web服务的发布。其中,将Web服务可部署文件拷贝进热部署目录下实现热部署,根据配置文件声明实现多个Web服务的发布,每个Web服务作为一个实体放置于Web服务模块中。步骤104:通过实现管理接口,来查看Web服务发布的状态。通过上述实施例的方法步骤,对各模块的扩展和运行,实现了对Web服务的发布,最后通过实现管理接口,来查看Web服务发布的状态。在上述本发明公开的实施例的基础上,请参见附图2,为本发明公开的另一种多Web服务发布的方法实施例的流程图,可以应用于开源的服务框架Apachexa0CXF和微内核集成框架上的Web服务装置,该方法还可以包括:步骤201:所述部署器模块获取Web服务的Web服务描述语言WSDL文档,生成接口;其中,使用定制的Web服务开发工具生成接口;步骤202:所述部署器模块获取客户端类,调用所述接口方法实现功能,所述配置文件配置所述客户端类,并用多个Web服务的地址和WSDL资源位置来引用Web服务,生成Web服务代理;其中,客户端类是由设计人员按照需要对客户端进行的开发。步骤203:所述部署器模块将所述生成Web服务代理打包生成Web服务代理可部署文件;步骤204:所述部署器模块解析所述Web服务代理可部署文件以获取Web服务代理配置文件声明,根据所述Web服务代理的配置文件声明生成Web服务代理注入到所述客户端类对象的对应字段中。其中,根据所述Web服务代理配置文件声明将所述发布的Web服务代理作为实体放置于Web服务引用模块。通过实现管理接口来查看Web服务或/和Web服务代理的发布状态。管理接口是管理整个Web服务装置的入口,外界可以介入该接口,获得相关信息或者实现管理,管理接口中的方法可以包括:getAllExposedServices()方法:获得已经发布的所有Web服务信息,getSpecifiedExposedService()方法:获得已经发布的指定的Web服务信息。getAllim
portedServices()方法:获得生成的所有Web服务引用信息。startExposedService()方法:将指定的Web服务发布。stopExposedService()方法:将指定的Web服务停止。uninstallExposedService()方法:将指定的Web服务卸载。startim
portedService()方法:将指定Web服务引用启动。stopim
portedService()方法:将指定Web服务引用停止。uninstalledim
portedService()方法:将指定的Web服务引用卸载。getCo
ntainerName()方法:获得容器名称。getCo
ntainerVersion()方法:获得容器版本。getExposedServiceIssuedTime()方法:获得指定Web服务的发布时间。geim
portedServiceIssuedTime()方法:获得指定Web服务引用的生成时间。getBus()方法:获得整个截获器总线。通过此实施例对第一个实施例的方法步骤进行进一步增加,本发明更好的实现了对多Web服务发布的需要,并且实现了对Web服务代理的发布,实现对Web服务装置进行统一的管理,实现对Web服务装置动态扩展。上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种Web服务装置,下面给出具体的实施例进行详细说明。请参见附图3,为本发明公开的Web服务装置的整体结构图。可以应用于开源的服务框架Apachexa0CXF和微内核集成框架上,具体可以包括:部署器模块301、协议处理器模块302、管理接口模块303、截获器模块304、Web服务模块305和Web服务引用模块306,还可以包括一个公共服务模块307。其中,部署器模块301,用于获取包括注解标示的普通类,对所述普通类发布成Web服务的方式进行配置,并将所述配置后的普通类打包生成Web服务可部署文件,然后对所述Web服务可部署文件解析获取配置文件声明,根据所述配置文件声明实现多个Web服务的发布;协议处理器模块302,用于存储协议处理器的集合,并作为Web服务调用的入口,判别远程请求的类型,对所述远程请求进行协议层的处理;管理接口模块303,用于管理所述截获器列表模块、所述协议处理器模块、所述Web服务模块和所述Web服务引用模块;截获器列表模块304,用于存储截获器的集合,并在调用业务服务之前进行消息处理;Web服务模块305,用于存储已经发布的Web服务的集合;Web服务引用模块306,用于存储Web服务引用的集合;公共服务库模块307,用于存储服务的集合,是Web服务装置可选配套设施,可以独立于Web服务装置而存在。分离出该公共服务库的目的是为了保持与其他模块的松耦合,每个服务都有特定的作用。例如:认证服务、授权服务和日志服务等,在远程用户访问容器的Web服务之前,调用公共服务库中的认证服务实现验证用户是否合法的作用;不合法就直接返回相应信息给远程用户,调用结束;在用户验证用户合法后,调用授权服务就可以判别该用户是否有这个权限访问相应Web服务;日志服务用于记录调用过程的有关信息。其中,所述部署器模块301、协议处理器模块302、管理接口模块303、截获器列表模块304、Web服务模块305、Web服务引用模块306和公共服务库模块307以bundle的形式通过热部署的方式部署至Apachexa0CXF和微内核集成框架。其中,截获器列表模块304、协议处理器模块302和Web服务305或服务引用模块306可以实现动态扩展。对于截获器列表的扩展,首先通过管理接口模块获得Bus实例,然后截获器必须实现指定的接口,此接口中方法可以包括:getAfter():截获器的下一个截获器,getBefore():截获器的上一个截获器,getId():截获器的ID,getPhase():截获器所处时期,handleMessage():处理消息请求,handleFault():处理错误信息。最后将截获器注册到总线中,通过总线实例就可以实现动态的删除已注册的截获器,总线实例维护截获器的执行顺序。对于协议处理器的扩展,新的协议处理器采用bundle实现,只要部署bundle至微内核集成框架中,协议处理池就会存在该添加的协议处理器。对于动态的部署和卸载Web服务或服务引用,当需要实现某个功能时,可以构建新的Web服务构件,把它放在热部署目录下就可以实现动态的添加Web服务,如果想暂停某个Web服务或服务引用,可以直接调用管理接口模块中的stop方法,重新恢复运行调用start方法,如果要完全删除某个Web服务或服务引用有两种办法:一是直接在热部署目录先删除构件包;二是调用管理接口模块中的uninstall方法删除Web服务或服务引用。综上所述:本发明实施例中的多Web服务发布的方法和Web服务装置,实现了对多Web服务的发布,提供了统一的管理接口,并且能够实现对协议处理器、截获器、Web服务或Web服务引用的动态扩展。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。